package com.xiang.mall.platform.uc.model.dto

import com.fasterxml.jackson.annotation.JsonFormat
import com.xiang.mall.platform.uc.model.enums.UserStatus
import com.xiang.mall.platform.uc.model.enums.UserType
import java.util.*

/**
 * @author xiangliyou
 * @email xiangliyou1814@mail.yneusoft.com
 * @date 2019-03-07 15:10
 *
 */
data class UserInfoDto(
    var id: Long = 0L,

    /**
     * 用户名,登录名,唯一的
     */
    var username: String = "",

    /**
     * 密码
     */
    var password: String = "",

    /**
     * 密码的盐
     */
    var salt: String = "",

    /**
     * 姓名
     */
    var nickName: String = "",

    /**
     * 手机号
     */
    var mobileNo: String = "",

    /**
     * 邮箱地址
     */
    var email: String = "",

    /**
     * 用户状态
     */
    var status: UserStatus = UserStatus.ENABLE,

    /**
     * 用户来源
     */
    var userSource: String = "",

    /**
     * 用户类型
     */
    var type: UserType = UserType.OPERATE,

    /**
     * 最后登录的 ip
     */
    var lastLoginIp: String = "",

    /**
     * 最后登录的位置
     */
    var lastLoginLocation: String = "",

    /**
     * 描述
     */
    var remark: String = "",

    /**
     * 最后登录的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    var lastLoginTime: Date = Date(),

    /**
     * 是否修改过密码
     */
    var changedPwd: Boolean = false,

    /**
     * 连续输错密码次数（连续5次输错就冻结帐号）
     */
    var pwdErrorCount: Short = 0,

    /**
     * 最后输错密码时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    var pwdErrorTime: Date? = null,

    /**
     * 用户所属的组织ID
     */
    var groupId: Long = 0L,

    /**
     * 用户所属的组织名称
     */
    var groupName: String = ""
)